#ifndef _MK_AUTO_PTR_H_
#define _MK_AUTO_PTR_H_

/************************************************************************/
/* 
*/
/************************************************************************/

template <class T>
class mk_auto_ptr
{
public:
	mk_auto_ptr( T* ptr):ap(ptr){};
	~mk_auto_ptr() 
	{
		delete ap;
	}

	
public:
	//Copy & assignment
	mk_auto_ptr(mk_auto_ptr &rhs);
	
	//Dereference
	T& operator*() const;

	T* operator->() const;

	//helper functions
	T* release();

	//reset value
	void reset(T* ptr=0);

private:
	T* ap;

};


#endif // PKCS11_TOKEN_NODE_H
